0 Prolog
↳1 PrologToDTProblemTransformerProof (⇒, 89 ms)
↳2 TRIPLES
↳3 TriplesToPiDPProof (⇒, 74 ms)
↳4 PiDP
↳5 DependencyGraphProof (⇔, 0 ms)
↳6 AND
↳7 PiDP
↳8 UsableRulesProof (⇔, 0 ms)
↳9 PiDP
↳10 PiDPToQDPProof (⇒, 0 ms)
↳11 QDP
↳12 QDPSizeChangeProof (⇔, 0 ms)
↳13 YES
↳14 PiDP
↳15 UsableRulesProof (⇔, 0 ms)
↳16 PiDP
↳17 PiDPToQDPProof (⇒, 0 ms)
↳18 QDP
↳19 QDPSizeChangeProof (⇔, 0 ms)
↳20 YES
↳21 PiDP
↳22 PiDPToQDPProof (⇒, 4 ms)
↳23 QDP
↳24 QDPOrderProof (⇔, 81 ms)
↳25 QDP
↳26 DependencyGraphProof (⇔, 0 ms)
↳27 TRUE
QUERYD_IN_G(X1) → U8_G(X1, pC_in_gaa(X1, X2, X3))
QUERYD_IN_G(X1) → PC_IN_GAA(X1, X2, X3)
PC_IN_GAA(X1, X2, X3) → U5_GAA(X1, X2, X3, reverseA_in_ga(X1, X2))
PC_IN_GAA(X1, X2, X3) → REVERSEA_IN_GA(X1, X2)
REVERSEA_IN_GA(cons(X1, X2), X3) → U1_GA(X1, X2, X3, reverseA_in_ga(X2, X4))
REVERSEA_IN_GA(cons(X1, X2), X3) → REVERSEA_IN_GA(X2, X4)
REVERSEA_IN_GA(cons(X1, X2), X3) → U2_GA(X1, X2, X3, reversecA_in_ga(X2, X4))
U2_GA(X1, X2, X3, reversecA_out_ga(X2, X4)) → U3_GA(X1, X2, X3, appendB_in_gaa(X4, X1, X3))
U2_GA(X1, X2, X3, reversecA_out_ga(X2, X4)) → APPENDB_IN_GAA(X4, X1, X3)
APPENDB_IN_GAA(cons(X1, X2), X3, cons(X1, X4)) → U4_GAA(X1, X2, X3, X4, appendB_in_gaa(X2, X3, X4))
APPENDB_IN_GAA(cons(X1, X2), X3, cons(X1, X4)) → APPENDB_IN_GAA(X2, X3, X4)
PC_IN_GAA(X1, cons(X2, X3), cons(X2, X4)) → U6_GAA(X1, X2, X3, X4, reversecA_in_ga(X1, cons(X2, X3)))
U6_GAA(X1, X2, X3, X4, reversecA_out_ga(X1, cons(X2, X3))) → U7_GAA(X1, X2, X3, X4, pC_in_gaa(X3, X5, X4))
U6_GAA(X1, X2, X3, X4, reversecA_out_ga(X1, cons(X2, X3))) → PC_IN_GAA(X3, X5, X4)
reversecA_in_ga(nil, nil) → reversecA_out_ga(nil, nil)
reversecA_in_ga(cons(X1, nil), cons(X1, nil)) → reversecA_out_ga(cons(X1, nil), cons(X1, nil))
reversecA_in_ga(cons(X1, X2), X3) → U10_ga(X1, X2, X3, reversecA_in_ga(X2, X4))
U10_ga(X1, X2, X3, reversecA_out_ga(X2, X4)) → U11_ga(X1, X2, X3, appendcB_in_gaa(X4, X1, X3))
appendcB_in_gaa(nil, X1, cons(X1, nil)) → appendcB_out_gaa(nil, X1, cons(X1, nil))
appendcB_in_gaa(cons(X1, X2), X3, cons(X1, X4)) → U12_gaa(X1, X2, X3, X4, appendcB_in_gaa(X2, X3, X4))
U12_gaa(X1, X2, X3, X4, appendcB_out_gaa(X2, X3, X4)) → appendcB_out_gaa(cons(X1, X2), X3, cons(X1, X4))
U11_ga(X1, X2, X3, appendcB_out_gaa(X4, X1, X3)) → reversecA_out_ga(cons(X1, X2), X3)
Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES
QUERYD_IN_G(X1) → U8_G(X1, pC_in_gaa(X1, X2, X3))
QUERYD_IN_G(X1) → PC_IN_GAA(X1, X2, X3)
PC_IN_GAA(X1, X2, X3) → U5_GAA(X1, X2, X3, reverseA_in_ga(X1, X2))
PC_IN_GAA(X1, X2, X3) → REVERSEA_IN_GA(X1, X2)
REVERSEA_IN_GA(cons(X1, X2), X3) → U1_GA(X1, X2, X3, reverseA_in_ga(X2, X4))
REVERSEA_IN_GA(cons(X1, X2), X3) → REVERSEA_IN_GA(X2, X4)
REVERSEA_IN_GA(cons(X1, X2), X3) → U2_GA(X1, X2, X3, reversecA_in_ga(X2, X4))
U2_GA(X1, X2, X3, reversecA_out_ga(X2, X4)) → U3_GA(X1, X2, X3, appendB_in_gaa(X4, X1, X3))
U2_GA(X1, X2, X3, reversecA_out_ga(X2, X4)) → APPENDB_IN_GAA(X4, X1, X3)
APPENDB_IN_GAA(cons(X1, X2), X3, cons(X1, X4)) → U4_GAA(X1, X2, X3, X4, appendB_in_gaa(X2, X3, X4))
APPENDB_IN_GAA(cons(X1, X2), X3, cons(X1, X4)) → APPENDB_IN_GAA(X2, X3, X4)
PC_IN_GAA(X1, cons(X2, X3), cons(X2, X4)) → U6_GAA(X1, X2, X3, X4, reversecA_in_ga(X1, cons(X2, X3)))
U6_GAA(X1, X2, X3, X4, reversecA_out_ga(X1, cons(X2, X3))) → U7_GAA(X1, X2, X3, X4, pC_in_gaa(X3, X5, X4))
U6_GAA(X1, X2, X3, X4, reversecA_out_ga(X1, cons(X2, X3))) → PC_IN_GAA(X3, X5, X4)
reversecA_in_ga(nil, nil) → reversecA_out_ga(nil, nil)
reversecA_in_ga(cons(X1, nil), cons(X1, nil)) → reversecA_out_ga(cons(X1, nil), cons(X1, nil))
reversecA_in_ga(cons(X1, X2), X3) → U10_ga(X1, X2, X3, reversecA_in_ga(X2, X4))
U10_ga(X1, X2, X3, reversecA_out_ga(X2, X4)) → U11_ga(X1, X2, X3, appendcB_in_gaa(X4, X1, X3))
appendcB_in_gaa(nil, X1, cons(X1, nil)) → appendcB_out_gaa(nil, X1, cons(X1, nil))
appendcB_in_gaa(cons(X1, X2), X3, cons(X1, X4)) → U12_gaa(X1, X2, X3, X4, appendcB_in_gaa(X2, X3, X4))
U12_gaa(X1, X2, X3, X4, appendcB_out_gaa(X2, X3, X4)) → appendcB_out_gaa(cons(X1, X2), X3, cons(X1, X4))
U11_ga(X1, X2, X3, appendcB_out_gaa(X4, X1, X3)) → reversecA_out_ga(cons(X1, X2), X3)
APPENDB_IN_GAA(cons(X1, X2), X3, cons(X1, X4)) → APPENDB_IN_GAA(X2, X3, X4)
reversecA_in_ga(nil, nil) → reversecA_out_ga(nil, nil)
reversecA_in_ga(cons(X1, nil), cons(X1, nil)) → reversecA_out_ga(cons(X1, nil), cons(X1, nil))
reversecA_in_ga(cons(X1, X2), X3) → U10_ga(X1, X2, X3, reversecA_in_ga(X2, X4))
U10_ga(X1, X2, X3, reversecA_out_ga(X2, X4)) → U11_ga(X1, X2, X3, appendcB_in_gaa(X4, X1, X3))
appendcB_in_gaa(nil, X1, cons(X1, nil)) → appendcB_out_gaa(nil, X1, cons(X1, nil))
appendcB_in_gaa(cons(X1, X2), X3, cons(X1, X4)) → U12_gaa(X1, X2, X3, X4, appendcB_in_gaa(X2, X3, X4))
U12_gaa(X1, X2, X3, X4, appendcB_out_gaa(X2, X3, X4)) → appendcB_out_gaa(cons(X1, X2), X3, cons(X1, X4))
U11_ga(X1, X2, X3, appendcB_out_gaa(X4, X1, X3)) → reversecA_out_ga(cons(X1, X2), X3)
APPENDB_IN_GAA(cons(X1, X2), X3, cons(X1, X4)) → APPENDB_IN_GAA(X2, X3, X4)
APPENDB_IN_GAA(cons(X2)) → APPENDB_IN_GAA(X2)
From the DPs we obtained the following set of size-change graphs:
REVERSEA_IN_GA(cons(X1, X2), X3) → REVERSEA_IN_GA(X2, X4)
reversecA_in_ga(nil, nil) → reversecA_out_ga(nil, nil)
reversecA_in_ga(cons(X1, nil), cons(X1, nil)) → reversecA_out_ga(cons(X1, nil), cons(X1, nil))
reversecA_in_ga(cons(X1, X2), X3) → U10_ga(X1, X2, X3, reversecA_in_ga(X2, X4))
U10_ga(X1, X2, X3, reversecA_out_ga(X2, X4)) → U11_ga(X1, X2, X3, appendcB_in_gaa(X4, X1, X3))
appendcB_in_gaa(nil, X1, cons(X1, nil)) → appendcB_out_gaa(nil, X1, cons(X1, nil))
appendcB_in_gaa(cons(X1, X2), X3, cons(X1, X4)) → U12_gaa(X1, X2, X3, X4, appendcB_in_gaa(X2, X3, X4))
U12_gaa(X1, X2, X3, X4, appendcB_out_gaa(X2, X3, X4)) → appendcB_out_gaa(cons(X1, X2), X3, cons(X1, X4))
U11_ga(X1, X2, X3, appendcB_out_gaa(X4, X1, X3)) → reversecA_out_ga(cons(X1, X2), X3)
REVERSEA_IN_GA(cons(X1, X2), X3) → REVERSEA_IN_GA(X2, X4)
REVERSEA_IN_GA(cons(X2)) → REVERSEA_IN_GA(X2)
From the DPs we obtained the following set of size-change graphs:
PC_IN_GAA(X1, cons(X2, X3), cons(X2, X4)) → U6_GAA(X1, X2, X3, X4, reversecA_in_ga(X1, cons(X2, X3)))
U6_GAA(X1, X2, X3, X4, reversecA_out_ga(X1, cons(X2, X3))) → PC_IN_GAA(X3, X5, X4)
reversecA_in_ga(nil, nil) → reversecA_out_ga(nil, nil)
reversecA_in_ga(cons(X1, nil), cons(X1, nil)) → reversecA_out_ga(cons(X1, nil), cons(X1, nil))
reversecA_in_ga(cons(X1, X2), X3) → U10_ga(X1, X2, X3, reversecA_in_ga(X2, X4))
U10_ga(X1, X2, X3, reversecA_out_ga(X2, X4)) → U11_ga(X1, X2, X3, appendcB_in_gaa(X4, X1, X3))
appendcB_in_gaa(nil, X1, cons(X1, nil)) → appendcB_out_gaa(nil, X1, cons(X1, nil))
appendcB_in_gaa(cons(X1, X2), X3, cons(X1, X4)) → U12_gaa(X1, X2, X3, X4, appendcB_in_gaa(X2, X3, X4))
U12_gaa(X1, X2, X3, X4, appendcB_out_gaa(X2, X3, X4)) → appendcB_out_gaa(cons(X1, X2), X3, cons(X1, X4))
U11_ga(X1, X2, X3, appendcB_out_gaa(X4, X1, X3)) → reversecA_out_ga(cons(X1, X2), X3)
PC_IN_GAA(X1) → U6_GAA(X1, reversecA_in_ga(X1))
U6_GAA(X1, reversecA_out_ga(X1, cons(X3))) → PC_IN_GAA(X3)
reversecA_in_ga(nil) → reversecA_out_ga(nil, nil)
reversecA_in_ga(cons(nil)) → reversecA_out_ga(cons(nil), cons(nil))
reversecA_in_ga(cons(X2)) → U10_ga(X2, reversecA_in_ga(X2))
U10_ga(X2, reversecA_out_ga(X2, X4)) → U11_ga(X2, appendcB_in_gaa(X4))
appendcB_in_gaa(nil) → appendcB_out_gaa(nil, cons(nil))
appendcB_in_gaa(cons(X2)) → U12_gaa(X2, appendcB_in_gaa(X2))
U12_gaa(X2, appendcB_out_gaa(X2, X4)) → appendcB_out_gaa(cons(X2), cons(X4))
U11_ga(X2, appendcB_out_gaa(X4, X3)) → reversecA_out_ga(cons(X2), X3)
reversecA_in_ga(x0)
U10_ga(x0, x1)
appendcB_in_gaa(x0)
U12_gaa(x0, x1)
U11_ga(x0, x1)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PC_IN_GAA(X1) → U6_GAA(X1, reversecA_in_ga(X1))
POL(PC_IN_GAA(x1)) = 1 + x1
POL(U10_ga(x1, x2)) = 1 + x2
POL(U11_ga(x1, x2)) = x2
POL(U12_gaa(x1, x2)) = 1 + x2
POL(U6_GAA(x1, x2)) = x2
POL(appendcB_in_gaa(x1)) = 1 + x1
POL(appendcB_out_gaa(x1, x2)) = x2
POL(cons(x1)) = 1 + x1
POL(nil) = 0
POL(reversecA_in_ga(x1)) = x1
POL(reversecA_out_ga(x1, x2)) = x2
reversecA_in_ga(nil) → reversecA_out_ga(nil, nil)
reversecA_in_ga(cons(nil)) → reversecA_out_ga(cons(nil), cons(nil))
reversecA_in_ga(cons(X2)) → U10_ga(X2, reversecA_in_ga(X2))
U10_ga(X2, reversecA_out_ga(X2, X4)) → U11_ga(X2, appendcB_in_gaa(X4))
appendcB_in_gaa(nil) → appendcB_out_gaa(nil, cons(nil))
appendcB_in_gaa(cons(X2)) → U12_gaa(X2, appendcB_in_gaa(X2))
U11_ga(X2, appendcB_out_gaa(X4, X3)) → reversecA_out_ga(cons(X2), X3)
U12_gaa(X2, appendcB_out_gaa(X2, X4)) → appendcB_out_gaa(cons(X2), cons(X4))
U6_GAA(X1, reversecA_out_ga(X1, cons(X3))) → PC_IN_GAA(X3)
reversecA_in_ga(nil) → reversecA_out_ga(nil, nil)
reversecA_in_ga(cons(nil)) → reversecA_out_ga(cons(nil), cons(nil))
reversecA_in_ga(cons(X2)) → U10_ga(X2, reversecA_in_ga(X2))
U10_ga(X2, reversecA_out_ga(X2, X4)) → U11_ga(X2, appendcB_in_gaa(X4))
appendcB_in_gaa(nil) → appendcB_out_gaa(nil, cons(nil))
appendcB_in_gaa(cons(X2)) → U12_gaa(X2, appendcB_in_gaa(X2))
U12_gaa(X2, appendcB_out_gaa(X2, X4)) → appendcB_out_gaa(cons(X2), cons(X4))
U11_ga(X2, appendcB_out_gaa(X4, X3)) → reversecA_out_ga(cons(X2), X3)
reversecA_in_ga(x0)
U10_ga(x0, x1)
appendcB_in_gaa(x0)
U12_gaa(x0, x1)
U11_ga(x0, x1)